﻿using KludgeBox.Events;
using KludgeBox.Net;
using KludgeBox.Net.Packets;
using VectorSurvivors.GameWorld;

namespace VectorSurvivors.Multiplayer;

public readonly record struct ReceivedPacketEvent(AbstractPacket Packet) : IEvent;

public readonly record struct SendPacketToServerRequest(AbstractPacket Packet, bool ForceReliable = false, bool ForceNow = false) : IEvent;
public readonly record struct SendPacketToClientsRequest(AbstractPacket Packet, bool ForceReliable = false, bool ForceNow = false) : IEvent;

public readonly record struct StartServerRequest(int Port = DefaultServerSettings.Port, int MaxPlayers = DefaultServerSettings.MaxPlayers);
public readonly record struct StopServerRequest;

public readonly record struct ConnectToServerRequest(string Host = DefaultServerSettings.Host, int Port = DefaultServerSettings.Port);
public readonly record struct DisconnectFromServer;